package com.soft.javase.ch07;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author wangzhisen
 * @Desc TODO
 * @date 2025/4/28
 *
 * Throwable 基本
 * 1.Error 错误
 * 严重错误Error，无法通过处理的错误，只能事先避免，好比绝症。例如：VirtualMachineError  JVM错误
 *      1.1 OutOfMemoryError   JVM无法正常分配内存空间
 *      1.2 StackOverflowError 由于递归抬升，导致的堆栈溢出
 *
 * 2.Exception 异常 程序在执行的过程中，可能会出现的不正常的事件流
 *      2.1 编译期异常 除了运行期异常以外的
 *      在编译时期,就会检查,如果没有处理异常,则编译失败。(如日期格式化异常)
 *          - ParseException  时间解析异常
 *          - IOException     IO异常
 *          - SQLException    SQL异常
 *          - ClassNotFoundException 类找不到异常
 *          - FileNotFoundException  文件找不到异常
 *      2.2 运行期异常 RuntimeException及其子类
 *      在运行时期,检查异常.在编译时期,运行异常不会编译器检测(不报错)。(如数学异常)
 *          - ArithmeticException  数学异常
 *          - NullPointerException 空指针异常
 *          - IndexOutOfBoundsException  下标越界异常
 *          - ClassCastException    类型转换异常
 *          - NumberFormatException 数字格式化异常
 */
public class ThrowableDemo {

    public static void main(String[] args) throws ParseException {
        String string = "2020-10-10";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-dd-MM");
        //编译期异常
        Date date = sdf.parse(string);
        System.out.println(date);

        String str = null;
        //运行期异常
        System.out.println(str.length());

    }
}
